package drds.binlog.protocol.entry_protocol_proto;


import com.google.protobuf.ByteString;

public interface ColumnOrBuilder extends

        com.google.protobuf.MessageOrBuilder
{

    /**
     * <pre>
     * *字段下标*
     * </pre>
     * <p>
     * <code>int32 index = 1;</code>
     */
    int getIndex();

    /**
     * <pre>
     * *字段java中类型*
     * </pre>
     * <p>
     * <code>int32 sqlType = 2;</code>
     */
    int getSqlType();

    /**
     * <pre>
     * *字段名称(忽略大小写)，在mysql中是没有的*
     * </pre>
     * <p>
     * <code>string name = 3;</code>
     */
    String getName();

    /**
     * <pre>
     * *字段名称(忽略大小写)，在mysql中是没有的*
     * </pre>
     * <p>
     * <code>string name = 3;</code>
     */
    ByteString getNameBytes();

    /**
     * <pre>
     * *是否是主键*
     * </pre>
     * <p>
     * <code>bool isKey = 4;</code>
     */
    boolean getIsKey();

    /**
     * <pre>
     * *如果EventType=UPDATE,用于标识这个字段值是否有修改*
     * </pre>
     * <p>
     * <code>bool updated = 5;</code>
     */
    boolean getUpdated();

    /**
     * <code>bool isNull = 6;</code>
     */
    boolean getIsNull();

    /**
     * <pre>
     * *预留扩展*
     * </pre>
     * <p>
     * <code>repeated .com.alibaba.otter.canal.protocol.Pair props = 7;</code>
     */
    java.util.List<Pair> getPropsList();

    /**
     * <pre>
     * *预留扩展*
     * </pre>
     * <p>
     * <code>repeated .com.alibaba.otter.canal.protocol.Pair props = 7;</code>
     */
    Pair getProps(int index);

    /**
     * <pre>
     * *预留扩展*
     * </pre>
     * <p>
     * <code>repeated .com.alibaba.otter.canal.protocol.Pair props = 7;</code>
     */
    int getPropsCount();

    /**
     * <pre>
     * *预留扩展*
     * </pre>
     * <p>
     * <code>repeated .com.alibaba.otter.canal.protocol.Pair props = 7;</code>
     */
    java.util.List<? extends PairOrBuilder> getPropsOrBuilderList();

    /**
     * <pre>
     * *预留扩展*
     * </pre>
     * <p>
     * <code>repeated .com.alibaba.otter.canal.protocol.Pair props = 7;</code>
     */
    PairOrBuilder getPropsOrBuilder(int index);

    /**
     * <pre>
     * * 字段值,timestamp,Datetime是一个时间格式的文本 *
     * </pre>
     * <p>
     * <code>string value = 8;</code>
     */
    String getValue();

    /**
     * <pre>
     * * 字段值,timestamp,Datetime是一个时间格式的文本 *
     * </pre>
     * <p>
     * <code>string value = 8;</code>
     */
    com.google.protobuf.ByteString getValueBytes();

    /**
     * <pre>
     * * 对应数据对象原始长度 *
     * </pre>
     * <p>
     * <code>int32 length = 9;</code>
     */
    int getLength();

    /**
     * <pre>
     * *字段mysql类型*
     * </pre>
     * <p>
     * <code>string mysqlType = 10;</code>
     */
    String getMysqlType();

    /**
     * <pre>
     * *字段mysql类型*
     * </pre>
     * <p>
     * <code>string mysqlType = 10;</code>
     */
    com.google.protobuf.ByteString getMysqlTypeBytes();

    public Column.IsNullPresentCase getIsNullPresentCase();
}
